لدي مجموعة بيانات على النحو الوارد أدناه اسم col1 col2 أ 10.3 10.9 ب 11 15 ج 20 7.2 د 6.2 6.2 هـ 5.3 5.4 f 4.5 4.0 أرغب في مقارنة col1 و col2 من df الخاص بي وأريد عمل عمود آخر حيث أثناء مقارنة قيم col1 و col2 إذا كانت قيمة col2 تزداد من col1 ، فأنا أريد إدخال زيادة بجانبهما في عمودي هناك وإذا كانت تناقص ، ثم أريد أن أكتب تناقصًا ولا تغييرات إذا كانت هي نفسها وأريد إنتاجي مثل هذا اسم col1 col2 col3 10.3 10.9 زيادة ب 11 15 متزايد ج 20 7.2 تناقص د 6.2 6.2 لا تغيير هـ 5.3 5.4 زيادة f 4.5 4.0 متناقصة
2021-01-31 08:14:07
مع dplyr: df٪>٪ متحور (Col3 = ifelse (col2 == col1 ، "لا تغيير"، ifelse (col2> col1 ، "زيادة" ، "تناقص"))) أو باستخدام case_when كما اقترحakrun df٪>٪ mutate (Col3 = case_when (col1 == col2 ~ "no change" ، col2> col1 ~ "زيادة" ، TRUE ~ "تناقص")) نتيجة: اسم col1 col2 Col3 1 أ 10.3 10.9 زيادة 2 ب 11.0 15.0 متزايد 3 ج 20.0 7.2 متناقصة 4 د 6.2 6.2 لا تغيير 5 هـ 5.3 5.4 متصاعد 6 f 4.5 4.0 متناقصة البيانات: df <-structure (list (name = c ("a"، "b"، "c"، "d"، "e"، "f")، col1 = c (10.3، 11، 20، 6.2، 5.3، 4.5)، col2 = c (10.9، 15، 7.2، 6.2، 5.4، 4))، class = "data.frame"، row.names = c (NA، -6 لتر)) | يمكننا طرح col1 بواسطة col2 ثم استخدام الإشارة لتعيين القيم df $ col3 <- c ("تناقص" ، "لا تغيير" ، "زيادة") [علامة (df $ col1 - df $ col2) + 2] مدافع # اسم col1 col2 col3 # 1 أ 10.3 10.9 متناقصة # 2 ب 11.0 15.0 متناقصة # 3 ج 20.0 7.2 آخذ في الازدياد # 4 د 6.2 6.2 لا تغيير # 5 هـ 5.3 5.4 متناقصة # 6 f 4.5 4.0 متزايد أو باستخدام dplyr ، يمكننا استخدام case_when مكتبة (dplyr) df٪>٪ mutate (col3 = case_when (col1 == col2 ~ "no change" ، col1> col2 ~ "زيادة" ، TRUE ~ "تناقص")) | قاعدة ص df $ col3 <- مع (df، ifelse (col1> col2، "انخفاض" ifelse (col1